package com.ruoyi.system.service.impl;

import java.util.List;

import com.ruoyi.common.annotation.DataScope;
import com.ruoyi.common.core.domain.dto.SysWharfDto;
import org.springframework.stereotype.Service;
import com.ruoyi.system.mapper.SysWharfMapper;
import com.ruoyi.common.core.domain.entity.system.SysWharf;
import com.ruoyi.system.service.ISysWharfService;

import javax.annotation.Resource;

/**
 * 景区码头，每个景区可能有1个或多个码头，景区与码头之间属于一对多的关系。Service业务层处理
 *
 * @author ruoyi
 * @date 2023-05-22
 */
@Service
public class SysWharfServiceImpl implements ISysWharfService {
    @Resource
    private SysWharfMapper sysWharfMapper;

    /**
     * 查询景区码头，每个景区可能有1个或多个码头，景区与码头之间属于一对多的关系。
     *
     * @param wharfId 景区码头，每个景区可能有1个或多个码头，景区与码头之间属于一对多的关系。主键
     * @return 景区码头，每个景区可能有1个或多个码头，景区与码头之间属于一对多的关系。
     */
    @Override
    public SysWharf selectWharfByWharfId(Long wharfId) {
        return sysWharfMapper.selectWharfByWharfId(wharfId);
    }

    /**
     * 查询景区码头，每个景区可能有1个或多个码头，景区与码头之间属于一对多的关系。列表
     *
     * @param wharf 景区码头，每个景区可能有1个或多个码头，景区与码头之间属于一对多的关系。
     * @return 景区码头，每个景区可能有1个或多个码头，景区与码头之间属于一对多的关系。
     */
    @Override
    @DataScope(userAlias = "u", scenicAlias = "s")
    public List<SysWharf> selectWharfList(SysWharf wharf) {
        return sysWharfMapper.selectWharfList(wharf);
    }

    /**
     * 新增景区码头，每个景区可能有1个或多个码头，景区与码头之间属于一对多的关系。
     *
     * @param wharf 景区码头，每个景区可能有1个或多个码头，景区与码头之间属于一对多的关系。
     * @return 结果
     */
    @Override
    public int insertWharf(SysWharf wharf) {
        return sysWharfMapper.insertWharf(wharf);
    }

    /**
     * 修改景区码头，每个景区可能有1个或多个码头，景区与码头之间属于一对多的关系。
     *
     * @param wharf 景区码头，每个景区可能有1个或多个码头，景区与码头之间属于一对多的关系。
     * @return 结果
     */
    @Override
    public int updateWharf(SysWharf wharf) {
        return sysWharfMapper.updateWharf(wharf);
    }

    /**
     * 批量删除景区码头，每个景区可能有1个或多个码头，景区与码头之间属于一对多的关系。
     *
     * @param wharfIds 需要删除的景区码头，每个景区可能有1个或多个码头，景区与码头之间属于一对多的关系。主键
     * @return 结果
     */
    @Override
    public int deleteWharfByWharfIds(Long[] wharfIds) {
        return sysWharfMapper.deleteWharfByWharfIds(wharfIds);
    }

    /**
     * 删除景区码头，每个景区可能有1个或多个码头，景区与码头之间属于一对多的关系。信息
     *
     * @param wharfId 景区码头，每个景区可能有1个或多个码头，景区与码头之间属于一对多的关系。主键
     * @return 结果
     */
    @Override
    public int deleteWharfByWharfId(Long wharfId) {
        return sysWharfMapper.deleteWharfByWharfId(wharfId);
    }

    @Override
    public List<SysWharfDto> getWharfListByScenicId(Long scenicId) {
        return sysWharfMapper.getWharfListByScenicId(scenicId);
    }
}
